package com.mjt.dongbao.common.base.result;

import com.mjt.dongbao.common.base.enums.StateCodeEnum;
import lombok.Builder;
import lombok.Data;

import java.io.Serializable;

/**
 * @Description
 * @Author mjt
 * @Time 2021/12/31
 */

@Data
@Builder
public class ResultWrapper<T> implements Serializable {
    // 返回值状态码
    private int code;

    // 返回值提示信息
    private String msg;

    // 具体的返回值对象
    private T data;

    /**
     * 请求成功的返回值统一包装
     * 在这里统一管理 code 和 msg 的设置
     * data 要在 Controller 中设置，可以返回 Object、List、Map 等等，不在这里处理
     */
    public static ResultWrapperBuilder getSuccessResult(){
        return ResultWrapper.builder()
                .code(StateCodeEnum.SUCCESS.getCode())
                .msg(StateCodeEnum.SUCCESS.getMsg());
    }

    /**
     * 请求失败的返回值统一包装
     */
    public static ResultWrapperBuilder getFailResult(){
        return ResultWrapper.builder()
                .code(StateCodeEnum.FAIL.getCode())
                .msg(StateCodeEnum.FAIL.getMsg());
    }


}
